home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Shareware Overload Trio 2
/
Shareware Overload Trio Volume 2 (Chestnut CD-ROM).ISO
/
dir43
/
med300.zip
/
MELINTBL.CLA
< prev
next >
Wrap
Text File
|
1994-02-22
|
3KB
|
74 lines
!▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
!█ █
!█ MELINTBL.CLA █
!█ Line table management procedures █
!█ █
!█ Revision Number: 1 █
!█ Revision Date : 22-Feb-94 █
!█ █
!█ Revision History █
!█ 1 Created █
!█ █
!▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
MEMBER('MEMOEDIT')
!═══════════════════════════════════════════════════════════════════════
! Adjust line pointers
!═══════════════════════════════════════════════════════════════════════
ME_AdjLines PROCEDURE( usLine, usAmount )
! Locals:
usIndex USHORT ! Line index
CODE
LOOP usIndex = usLine TO RECORDS(qLine) ! Loop for each line
GET(qLine, usIndex) ! Get table entry
QLN:usLineStart += usAmount ! Adjust line pointer
PUT(qLine) ! Save back to table
. ! End loop
RETURN
!═══════════════════════════════════════════════════════════════════════
! Find line index for passed offset
!═══════════════════════════════════════════════════════════════════════
ME_LineIndex FUNCTION( usOffset )
! Locals:
usIndex USHORT ! Line index
CODE
LOOP usIndex = 1 TO RECORDS(qLine) ! Loop for each line
GET(qLine, usIndex) ! Get table entry
IF QLN:usLineStart > usOffset THEN BREAK. ! Break if found
. ! End loop
RETURN( usIndex - 1 ) ! Return line index
!═══════════════════════════════════════════════════════════════════════
! Find starting offset for passed line index
!═══════════════════════════════════════════════════════════════════════
ME_LineStart FUNCTION( usLineNdx )
CODE
usLineNdx = ME_Min(usLineNdx, RECORDS(qLine)) ! Adjust for overshoot
GET(qLine, usLineNdx) ! Return line start
RETURN( QLN:usLineStart )
!═══════════════════════════════════════════════════════════════════════
! Find ending offset for passed line index
!═══════════════════════════════════════════════════════════════════════
ME_LineEnd FUNCTION( usLineNdx )
CODE
IF usLineNdx >= RECORDS(qLine) ! If past last line
RETURN( ME_Max(MED:usCharacters-1, 0) ) ! Return end of document
ELSE ! Else
GET(qLine, usLineNdx+1) ! Get table entry
RETURN( QLN:usLineStart - 1 ) ! Return line end
. ! Endif